Contents
  1. 1. 使用工具帮助查找无用代码
    1. 1.1. Resharper——收费,只适用于C#。
    2. 1.2. Visual Studio的Code Analysis (FXCop)——集成在Visual Studio中,只适用于C#。
  2. 2. 通过测试覆盖率Code Coverage寻找潜在的无用代码
  3. 3. 查找重复的代码
    1. 3.1. Visual Studio —— 只适用于C#。
    2. 3.2. Simian —— 非商用免费,商用收费
  4. 4. 阅读代码,理解代码

一个系统开发久了难免会有一些没用的代码Dead Code。把这些没用的代码删除对提高代码质量,降低维护成本都有很大的好处。本文就简单总结一下我认为有效的可以找到无用代码的一些心得。

使用工具帮助查找无用代码

Resharper——收费,只适用于C#。

Resharper是一个C#开发必备神器了。它能检查出很多代码问题,包含一些无用代码,参见下图。

Visual Studio的Code Analysis (FXCop)——集成在Visual Studio中,只适用于C#。

Code Analysis for Managed Code Warnings可以针对C#做很多检查,其中和Dead Code相关的检查有如下几个:

  1. CA1801: Review unused parameters
  2. CA1804: Remove unused locals
  3. CA1811: Avoid uncalled private code
  4. CA1812: Avoid uninstantiated internal classes
  5. CA1823: Avoid unused private fields

可以在Visual Studio中自己创建一个RuleSet,只包含这几个规章,然后跑一遍就行了,参见下图。

通过测试覆盖率Code Coverage寻找潜在的无用代码

如果一段代码的测试覆盖率是0,那它有可能就是Dead Code。当然这条规则只在测试覆盖率很高,而且测试质量很高的情况下才有效。这个测试覆盖率可以是单元测试加上集成测试,再加上UI自动化测试。测试质量越高,越能容易的发现潜在的Dead Code。所以如果严格按照TDD的流程进行开发,理论上就不应该有无用代码,当然前提是驱动开发的那个测试是有用的:)。

查找重复的代码

我认为重复代码也是一种无用代码,而且可能比无用代码危害还大。查找重复代码相对来说比查找无用代码容易一些,也有很多的工具可以使用,比如:

Visual Studio —— 只适用于C#。

我之前的博客VS2012很cool的新功能:检查重复代码介绍过,参加下图。

Simian —— 非商用免费,商用收费

Simian支持Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy。

阅读代码,理解代码

这个不用说了,什么工具都比不上熟悉代码的你:)

Contents
  1. 1. 使用工具帮助查找无用代码
    1. 1.1. Resharper——收费,只适用于C#。
    2. 1.2. Visual Studio的Code Analysis (FXCop)——集成在Visual Studio中,只适用于C#。
  2. 2. 通过测试覆盖率Code Coverage寻找潜在的无用代码
  3. 3. 查找重复的代码
    1. 3.1. Visual Studio —— 只适用于C#。
    2. 3.2. Simian —— 非商用免费,商用收费
  4. 4. 阅读代码,理解代码